package top.wshape1.shiziapi.common.constant;

/**
 * @author Wshape1
 * @version 1.0
 * @description
 * @since 2023-08-23
 */

public class RedisConstant {

    /*
    USER
     */
    public static final String USER_JWT_KEY = "user:jwt:";

    public static final String USER_ONLINE_KEY = "user:online:set";

    /*
    EMAIL
     */
    public static final String EMAIL_REG_CODE_KEY = "email:reg:code:";
    public static final String EMAIL_BINDING_CODE_KEY = "email:binding:code:";
    public static final String EMAIL_FORGET_CODE_KEY = "email:forget:code:";

    /*
    OAUTH2
     */
    public static final String OAUTH2_LOGIN_ID_KEY = "oauth2:login:id:";

    /*
    PROJECT
     */
    public static final String PROJECT_LIKE_SET_KEY = "project:like:";

    public static final String PROJECT_NOTE_LIKE_KEY = "project:note:like:";

    public static final String PROJECT_NOTE_UNLIKE_KEY = "project:note:unlike:";

    public static final String PROJECT_LIKE_LOCK_KEY = "project:like:lock";

    public static final String PROJECT_HOT_KEY = "project:hot:";

    public static final String PROJECT_HOT_NAME_KEY = "name";

    public static final String PROJECT_HOT_DOCLIST_KEY = "doc:list";

    public static final String PROJECT_HOT_APITAG_KEY = "api:tag:";
    public static final String PROJECT_HOT_API_KEY = "api:";

    public static final String PROJECT_HOT_MD_KEY = "md:";

    public static final String PROJECT_HOT_RTF_KEY = "rtf:";

    public static final String DOC_AI_SUMMARY_KEY = "doc:ai:summary:";

    public static final String WEBSOCKET_USER_NODE_KEY = "shizi:websocket:user:node:";

    public static final String AI_SUMMARY_CONCURRENT_SEMAPHORE_KEY = "ai:summary:concurrent:semaphore";

    public static final String AI_SUMMARY_RATE_LIMITER_KEY = "ai:summary:rate:limiter";

    /**
     * 用于AI服务报错后存储的标识，方便下一次查询时得知
     */
    public static final String AI_SUMMARY_ERROR_KEY = "ai:summary:error:";

}
